from flask import Flask
from flask import request, render_template, Blueprint

# 创建flask的服务对象
app = Flask('hiflask')

# 请求路由R
@app.route('/bank', methods=['GET', 'POST'])
def addBank():
    """
    练习：
        1、GET请求返回添加银行卡的网页
        2、POST请求获取用户输入的信息，判断是否为空，为空的时候提示错误
        3、不为空在日志里面打印一下
    """

    # 加载数据(Model交互操作)
    data = {
        'title': "绑定银行卡页面",
        'error_message': "卡号和银行名称不能为空"
    }

    if request.method == 'POST':

        # 处理post请求
        # 获取表单参数
        name = request.form.get('name', None)
        card_num = request.form.get('card_num', None)
        if all ((name, card_num)):
            # 使用flask中的日志记录器(名称为当前的脚本名称，可以自定义)
            app.logger.info('name: %s;card: %s' %(name,card_num))
            return """
                <h2>绑定银行卡信息成功</h2>
                <h4 id="result"></h4>
                <script>
                    let steps = 5;
                    let intid = setInterval (() => {
                        if (steps > 0){
                            document.getElementById('result').innerText = "剩余秒数：" + steps-- + "  秒"
                        } else {
                        // 取消定时器
                            clearInterval(intid)
                            window.open('/bank',target="_self")
                        } 
                    },1000)
                </script>
            """
    data['error_message'] = '银行卡号不能为空'
    # 渲染模板(需要导包render_template)
    return render_template('CardAPP.html', **data)

# 启动服务
app.run('localhost',
        5000,
        True,  # 第三个值：debug：是否自动重启（保存了的话会自动重启），默认未开启
        threaded=True)  # 开启多线程，默认是不开启
# processes=2)        # 进程数设置，默认一个进程
# 多进程和多线程不能同时开启
